<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Changes</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../boost_lexical_cast.html" title="Chapter 21. Boost.Lexical_Cast 1.0">
<link rel="prev" href="frequently_asked_questions.html" title="Frequently Asked Questions">
<link rel="next" href="performance.html" title="Performance">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="frequently_asked_questions.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="performance.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_lexical_cast.changes"></a><a class="link" href="changes.html" title="Changes">Changes</a>
</h2></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <span class="bold"><strong>boost 1.56.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                Added <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">try_lexical_convert</span></code> functions.
              </li></ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.54.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                Fix some issues with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code>
                and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> conversions. Notify
                user at compile time if the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
                are not specialized for 128bit types and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span></code>
                can not make conversions.
              </li></ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.54.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Added code to convert <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code>
                and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> types (requires GCC
                4.7 or higher).
              </li>
<li class="listitem">
                Conversions to pointers will now fail to compile, instead of throwing
                at runtime.
              </li>
<li class="listitem">
                Restored ability to get pointers to <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
                function (was broken in 1.53.0).
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.53.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                Much better input and output streams detection for user defined types.
              </li></ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.52.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Restored compilation on MSVC-2003 (was broken in 1.51.0).
              </li>
<li class="listitem">
                Added <code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharType</span><span class="special">*</span>
                <span class="identifier">chars</span><span class="special">,</span>
                <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">)</span></code> function overload.
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.51.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                Better performance, less memory usage for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></code> conversions.
              </li></ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.50.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span></code> exception is now
                globaly visible and can be catched even if code is compiled with
                -fvisibility=hidden.
              </li>
<li class="listitem">
                Now it is possible to compile library with disabled exceptions.
              </li>
<li class="listitem">
                Better performance, less memory usage and bugfixes for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">character_type</span><span class="special">*&gt;</span></code>
                conversions.
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.49.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Restored work with typedefed wchar_t (compilation flag /Zc:wchar_t-
                for Visual Studio).
              </li>
<li class="listitem">
                Better performance and less memory usage for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">basic_string</span></code>
                conversions.
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.48.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Added code to work with Inf and NaN on any platform.
              </li>
<li class="listitem">
                Better performance and less memory usage for conversions to float
                type (and to double type, if <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">)</span></code>).
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.47.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Optimizations for "C" and other locales without number
                grouping.
              </li>
<li class="listitem">
                Better performance and less memory usage for unsigned char and signed
                char conversions.
              </li>
<li class="listitem">
                Better performance and less memory usage for conversions to arithmetic
                types.
              </li>
<li class="listitem">
                Better performance and less memory usage for conversions from arithmetic
                type to arithmetic type.
              </li>
<li class="listitem">
                Directly construct Target from Source on some conversions (like conversions
                from string to string, from char array to string, from char to char
                and others).
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.34.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                Better performance for many combinations of Source and Target types.
                For more details refer to Alexander Nasonovs article <a href="http://accu.org/index.php/journals/1375" target="_top">Fine
                Tuning for lexical_cast, Overload #74, August 2006</a> <a href="http://www.accu.org/var/uploads/journals/overload74.pdf" target="_top">(PDF)</a>.
              </li></ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>boost 1.33.0 :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                Call-by-const reference for the parameters. This requires partial
                specialization of class templates, so it doesn't work for MSVC 6,
                and it uses the original pass by value there.
              </li>
<li class="listitem">
                The MSVC 6 support is deprecated, and will be removed in a future
                Boost version.
              </li>
</ul></div>
        </li>
<li class="listitem">
          <span class="bold"><strong>Earlier :</strong></span>
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
                The previous version of lexical_cast used the default stream precision
                for reading and writing floating-point numbers. For numerics that
                have a corresponding specialization of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>,
                the current version now chooses a precision to match.
              </li>
<li class="listitem">
                The previous version of lexical_cast did not support conversion to
                or from any wide-character-based types. For compilers with full language
                and library support for wide characters, <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
                now supports conversions from <code class="computeroutput"><span class="keyword">wchar_t</span></code>,
                <code class="computeroutput"><span class="keyword">wchar_t</span> <span class="special">*</span></code>,
                and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code> and to <code class="computeroutput"><span class="keyword">wchar_t</span></code>
                and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code>.
              </li>
<li class="listitem">
                The previous version of <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
                assumed that the conventional stream extractor operators were sufficient
                for reading values. However, string I/O is asymmetric, with the result
                that spaces play the role of I/O separators rather than string content.
                The current version fixes this error for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
                and, where supported, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code>:
                <code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="string">"Hello, World"</span><span class="special">)</span></code>
                succeeds instead of failing with a <code class="computeroutput"><span class="identifier">bad_lexical_cast</span></code>
                exception.
              </li>
<li class="listitem">
                The previous version of <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
                allowed unsafe and meaningless conversions to pointers. The current
                version now throws a <code class="computeroutput"><span class="identifier">bad_lexical_cast</span></code>
                for conversions to pointers: <code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="keyword">char</span>
                <span class="special">*&gt;(</span><span class="string">"Goodbye,
                World"</span><span class="special">)</span></code> now
                throws an exception instead of causing undefined behavior.
              </li>
</ul></div>
        </li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2000-2005 Kevlin Henney<br>Copyright © 2006-2010 Alexander Nasonov<br>Copyright © 2011-2021 Antony Polukhin<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="frequently_asked_questions.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="performance.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
